| 12345678910111213141516171819202122232425262728293031323334 |
- import type { APIRoute } from "astro"
- import { getCollection } from "astro:content"
- function notFoundText(locals: unknown) {
- if (typeof locals !== "object" || locals === null || !("t" in locals)) {
- return "share.not_found"
- }
- const t = (locals as { t?: unknown }).t
- if (typeof t !== "function") {
- return "share.not_found"
- }
- const text = t("share.not_found")
- if (typeof text === "string" && text.length > 0) {
- return text
- }
- return "share.not_found"
- }
- export const GET: APIRoute = async ({ params, locals }) => {
- const slug = params.slug || "index"
- const docs = await getCollection("docs")
- const doc = docs.find((d) => d.id === slug)
- const notFound = notFoundText(locals)
- if (!doc) {
- return new Response(notFound, { status: 404, statusText: notFound })
- }
- return new Response(doc.body, {
- headers: {
- "Content-Type": "text/plain; charset=utf-8",
- },
- })
- }
|